package org.example.BinaryTree;

public class Search_in_binary_search_trees {
    public static TreeNode node = null;

    public static void main(String[] args) {
        //二叉搜索树中的搜索

        //给定二叉搜索树（BST）的根节点 root 和一个整数值 val。
        //你需要在 BST 中找到节点值等于 val 的节点。 返回以该节点为根的子树。 如果节点不存在，则返回 null 。
        TreeNode node1 = new TreeNode(2);
        TreeNode node2 = new TreeNode(7);
        TreeNode node3 = new TreeNode(1);
        TreeNode node4 = new TreeNode(3);
        TreeNode root = new TreeNode(4);
        root.left = node1;
        root.right = node2;
        node1.left = node3;
        node1.right = node4;
        searchBST(root, 2);
        System.out.println(node.val);
    }

    public static void searchBST(TreeNode root, int val) {
        if (root == null) return;
        if (root.val == val) node = root;
        if (root.val > val) searchBST(root.left, val);
        if (root.val < val) searchBST(root.right, val);
    }
}
